import Vue from 'vue';
// 引入element UI
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
// 引入路由
import router from './router';
// 引入状态管理
import store from './store';
// 引入icon
import './assets/icon/iconfont.css'
// 引入后端api接口
import getApi from '@/api';
// 引入echarts
import echarts from 'echarts'
// 引入axios网络请求库
import axios from 'axios';
import App from './App';
// 解决移动端点击的300ms延迟插件
// import FastClick from 'fastclick';
import { printLog } from '@/utils/util';

// 启用解决点击事件延迟
// FastClick.attach(document.body);

// 使用element UI
Vue.use(ElementUI);

// 挂载一些需要的东西至vue原型上
Vue.prototype.$api = getApi;
Vue.prototype.$echarts = echarts
Vue.prototype.$axios = axios;
Vue.prototype.$print = printLog;
// 设置一个 [事件总线]
Vue.prototype.$Bus = new Vue({});

// TODO: 生产环境下记得改成false
Vue.config.productionTip = false;

// 添加过滤器
import * as custom from './utils/util'
Object.keys(custom).forEach(key => {
  Vue.filter(key, custom[key])
})

// 此函数执行后自动忽略console.log()打印
export function rewirteLog() {
  console.log = (function (log) {
    return process.env.NODE_ENV == 'development' ? log : function () { }
  }(console.log))
}

// 创建一个Vue实例
const fVue = new Vue({
  router,
  store,
  render: h => h(App),
  data: {
    // 空的实例放到根组件下，所有的子组件都能调用 "Bus总线" 订阅者发布者模式
    Bus: new Vue()
  }
}).$mount('#app');


export default fVue
